package org.angelica.utils.redis;

import org.angelica.utils.common.SpringContextUtil;
import org.springframework.data.redis.core.StringRedisTemplate;

import java.util.concurrent.TimeUnit;

/**
 * redis 工具类
 * @author aizhimin
 */
public class RedisUtil {

    /**
     * 设置缓存
     * @param key
     * @param value
     */
    public static void set(String key,String value){
        StringRedisTemplate stringRedisTemplate = SpringContextUtil.getBean(StringRedisTemplate.class);
        stringRedisTemplate.opsForValue().set(key,value);
    }

    /**
     * 设置缓存，并设置过期时间
     * @param key
     * @param value
     * @param timeout
     */
    public static void set(String key,String value,long timeout){
        StringRedisTemplate stringRedisTemplate = SpringContextUtil.getBean(StringRedisTemplate.class);
        stringRedisTemplate.opsForValue().set(key,value,timeout, TimeUnit.SECONDS);
    }

    /**
     * 判断key是否存在
     * @param key
     * @return
     */
    public static boolean hasKey(String key){
        StringRedisTemplate stringRedisTemplate = SpringContextUtil.getBean(StringRedisTemplate.class);
        return stringRedisTemplate.hasKey(key);
    }

    /**
     * 获取缓存值
     * @param key
     * @return
     */
    public static String get(String key){
        StringRedisTemplate stringRedisTemplate = SpringContextUtil.getBean(StringRedisTemplate.class);
        return stringRedisTemplate.opsForValue().get(key);
    }
}
